package com.enn.demo.core.domain.repository;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.enn.demo.core.domain.model.tenant.Tenant;
import com.enn.demo.core.domain.model.tenant.TenantCode;
import com.enn.demo.core.domain.model.tenant.TenantId;
import com.enn.demo.core.domain.model.tenant.TenantName;
import com.enn.demo.dal.entity.SysTenantDO;

import java.util.Map;

/**
 * 租户-Repository接口
 *
 * @author haoxin
 * @date 2021-02-14
 **/
public interface TenantRepository {

    /**
     * 通过租户id获取租户
     *
     * @param tenantId
     * @return
     */
    Tenant find(TenantId tenantId);

    /**
     * 通过租户名称获取租户
     *
     * @param tenantName
     * @return
     */
    Tenant find(TenantName tenantName);

    /**
     * 通过租户编码获取租户
     *
     * @param tenantCode
     * @return
     */
    Tenant find(TenantCode tenantCode);

    /**
     * 保存
     *
     * @param tenant
     */
    TenantId store(Tenant tenant);

    /**
     * 查询分页
     * @param params
     * @return
     */
    IPage<SysTenantDO> queryPage(Map<String, Object> params);

    /**
     * id查询
     * @param tenantId
     * @return
     */
    SysTenantDO selectById(TenantId tenantId);
}
